小明同時學會輸入指令操作著終端機、
以及透過滑鼠操作著圖像化介面的 Sourcetree 軟體,
又完成一項如何操作 Git 的概念,信心也逐漸大增。
小明:「完成了。目前學到新增、修改、刪除和還原。」
小明:「不過,我很好奇,有辦法讓 Git 忽略特定的檔案嗎?」
小華:「哇~越來越會提問問題了呢~」
小華:「嗯...我來想想要怎麼說明...」
小華:「不過,要注意的是忽略的檔案狀態必須是 「Unstaged files」...」
在 Git 官方網站的敘述是
「A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected.」,
簡單來說,就是
「Git 根據 gitignore 檔案的配置忽略掉特定的檔案,而不被紀錄;但是如果已經被 Git 跟蹤的檔案再放入 gitignore 檔案就不能生效了」。
gitignore 檔案最主要的目的是「排除特定檔案,不列入版本控管」。
這邊所指的特定檔案,像是:
(1) 比較機密的檔案,例如:Google Maps API Key、資料庫的存取密碼。
(2) 透過讀取 package.json 的 dependencies 欄位紀錄,npm 就能安裝的檔案,例如:node_modules。
(3) 不需要被追蹤的系統檔案,例如:Mac OS 作業系統的 .DS_Store。
Git 依照 gitignore 檔案由上至下的順序配置,進行忽略。
以 Vue CLI 的 .gitignore 當作範例:
.DS_Store
node_modules/ // 斜線 / 表示目錄
/dist/
npm-debug.log* // 星號 * 匹配多個字母
yarn-debug.log*
yarn-error.log*
其他的配置規則,包含:
(a) 問號 ? 匹配單個字母。
(b) 括號 [ ] 匹配特定字母的列表。
(c) 驚嘆號 ! 表示不忽略匹配到的目錄或檔案。
接下來,又要學習什麼呢?
(1) 高見龍 -【狀況題】有些檔案我不想放在 Git 裡面…
(2) Will 保哥 - 第 19 天:設定 .gitignore 忽略清單
(3) David Wu - gitignore 大小事
(4) Git 官方網站 - gitignore
(5) 程式前沿 - Gitignore 總結